package com.demo.exception.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;

import com.demo.exception.utils.verification.IsPhone;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
 * <p>
 * 常用参数注解
 * 注解	功能
 * @AssertFalse 可以为null, 如果不为null的话必须为false
 * @AssertTrue 可以为null, 如果不为null的话必须为true
 * @DecimalMax 设置不能超过最大值
 * @DecimalMin 设置不能超过最小值
 * @Digits 设置必须是数字且数字整数的位数和小数的位数必须在指定范围内
 * @Future 日期必须在当前日期的未来
 * @Past 日期必须在当前日期的过去
 * @Max 最大不得超过此最大值
 * @Min 最大不得小于此最小值
 * @NotNull 不能为null，可以是空
 * @Null 必须为null
 * @Pattern 必须满足指定的正则表达式
 * @Size 集合、数组、map等的size()值必须在指定范围内
 * @Email 必须是email格式
 * @Length 长度必须在指定范围内
 * @NotBlank 字符串不能为null, 字符串trim()后也不能等于“”
 * @NotEmpty 不能为null，集合、数组、map等size()不能为0；字符串trim()后可以等于“”
 * @Range 值必须在指定范围内
 * @URL 必须是一个URL
 * </p>
 *
 * @author 小乌龟
 * @since 2022-11-13
 */
@Getter
@Setter
@TableName("user")
@ApiModel(value = "User对象", description = "")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("pk_id")
    @NotNull(groups = ValidGroup.Crud.Update.class,message = "用户未登录")
    private Long pkId;

    @ApiModelProperty("用户名称")
    @TableField("user_name")
    @NotBlank(message = "名称必填")
    private String userName;


    @ApiModelProperty("用户性别 0 男 1女")
    @TableField("user_sex")
    private Integer userSex;

    @ApiModelProperty("用户登录密码")
    @TableField("user_secret")
    @NotBlank(message = "密码必填")
    private String userSecret;

    @ApiModelProperty("用户电话号码(账号)")
    @TableField("user_telephone")
    @Pattern(regexp = "^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\\d{8}$",message = "电话号码错误")
    private String userTelephone;


}
